<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>Box2D: b2RevoluteJoint Class Reference</title>

<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />

<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>

</head>
<body>
<div id="top"><!-- do not remove this div! -->


<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  
  <td id="projectlogo"><img alt="Logo" src="icon.gif"/></td>
  
  
  <td style="padding-left: 0.5em;">
   <div id="projectname">Box2D
   &#160;<span id="projectnumber">2.2.1</span>
   </div>
   <div id="projectbrief">A 2D Physics Engine for Games</div>
  </td>
  
  
  
 </tr>
 </tbody>
</table>
</div>

<!-- Generated by Doxygen 1.7.5.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a> &#124;
<a href="#friends">Friends</a>  </div>
  <div class="headertitle">
<div class="title">b2RevoluteJoint Class Reference</div>  </div>
</div>
<div class="contents">
<!-- doxytag: class="b2RevoluteJoint" --><!-- doxytag: inherits="b2Joint" -->
<p><code>#include &lt;<a class="el" href="b2_revolute_joint_8h_source.html">b2RevoluteJoint.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for b2RevoluteJoint:</div>
<div class="dyncontent">
 <div class="center">
  <img src="classb2_revolute_joint.png" usemap="#b2RevoluteJoint_map" alt=""/>
  <map id="b2RevoluteJoint_map" name="b2RevoluteJoint_map">
<area href="classb2_joint.html" alt="b2Joint" shape="rect" coords="0,0,102,24"/>
</map>
 </div></div>

<p><a href="classb2_revolute_joint-members.html">List of all members.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7f266986c12009973fd74c9828b6c236"></a><!-- doxytag: member="b2RevoluteJoint::GetAnchorA" ref="a7f266986c12009973fd74c9828b6c236" args="() const " -->
<a class="el" href="structb2_vec2.html">b2Vec2</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classb2_revolute_joint.html#a7f266986c12009973fd74c9828b6c236">GetAnchorA</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the anchor point on bodyA in world coordinates. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3a67ad189b29ea8ab6602a28697807f6"></a><!-- doxytag: member="b2RevoluteJoint::GetAnchorB" ref="a3a67ad189b29ea8ab6602a28697807f6" args="() const " -->
<a class="el" href="structb2_vec2.html">b2Vec2</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classb2_revolute_joint.html#a3a67ad189b29ea8ab6602a28697807f6">GetAnchorB</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the anchor point on bodyB in world coordinates. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af270a3029b2573bf85cde345c22d65ab"></a><!-- doxytag: member="b2RevoluteJoint::GetLocalAnchorA" ref="af270a3029b2573bf85cde345c22d65ab" args="() const " -->
const <a class="el" href="structb2_vec2.html">b2Vec2</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classb2_revolute_joint.html#af270a3029b2573bf85cde345c22d65ab">GetLocalAnchorA</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The local anchor point relative to bodyA's origin. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a985f788cffd53d7bb926b11cf77734e4"></a><!-- doxytag: member="b2RevoluteJoint::GetLocalAnchorB" ref="a985f788cffd53d7bb926b11cf77734e4" args="() const " -->
const <a class="el" href="structb2_vec2.html">b2Vec2</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classb2_revolute_joint.html#a985f788cffd53d7bb926b11cf77734e4">GetLocalAnchorB</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The local anchor point relative to bodyB's origin. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acfe881247b1f1f8f12aefd3a8f0cfd00"></a><!-- doxytag: member="b2RevoluteJoint::GetReferenceAngle" ref="acfe881247b1f1f8f12aefd3a8f0cfd00" args="() const " -->
float32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classb2_revolute_joint.html#acfe881247b1f1f8f12aefd3a8f0cfd00">GetReferenceAngle</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the reference angle. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab20fc12ce5ad5d84a032eb613c80764a"></a><!-- doxytag: member="b2RevoluteJoint::GetJointAngle" ref="ab20fc12ce5ad5d84a032eb613c80764a" args="() const " -->
float32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classb2_revolute_joint.html#ab20fc12ce5ad5d84a032eb613c80764a">GetJointAngle</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the current joint angle in radians. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a48e4db13c187af159587d731656aa0c4"></a><!-- doxytag: member="b2RevoluteJoint::GetJointSpeed" ref="a48e4db13c187af159587d731656aa0c4" args="() const " -->
float32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classb2_revolute_joint.html#a48e4db13c187af159587d731656aa0c4">GetJointSpeed</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the current joint angle speed in radians per second. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7711afbfbdba4451d2dbfa8e55b9ded8"></a><!-- doxytag: member="b2RevoluteJoint::IsLimitEnabled" ref="a7711afbfbdba4451d2dbfa8e55b9ded8" args="() const " -->
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classb2_revolute_joint.html#a7711afbfbdba4451d2dbfa8e55b9ded8">IsLimitEnabled</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Is the joint limit enabled? <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a56bdfdd04e906e52d0258f6a481b9093"></a><!-- doxytag: member="b2RevoluteJoint::EnableLimit" ref="a56bdfdd04e906e52d0258f6a481b9093" args="(bool flag)" -->
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classb2_revolute_joint.html#a56bdfdd04e906e52d0258f6a481b9093">EnableLimit</a> (bool flag)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Enable/disable the joint limit. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0f33656869e46ec9405f42d68e858220"></a><!-- doxytag: member="b2RevoluteJoint::GetLowerLimit" ref="a0f33656869e46ec9405f42d68e858220" args="() const " -->
float32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classb2_revolute_joint.html#a0f33656869e46ec9405f42d68e858220">GetLowerLimit</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the lower joint limit in radians. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9bb683118879611e84e4cb26bdc8d39f"></a><!-- doxytag: member="b2RevoluteJoint::GetUpperLimit" ref="a9bb683118879611e84e4cb26bdc8d39f" args="() const " -->
float32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classb2_revolute_joint.html#a9bb683118879611e84e4cb26bdc8d39f">GetUpperLimit</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the upper joint limit in radians. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a32f9393d8a6b993fd523f0f643c28107"></a><!-- doxytag: member="b2RevoluteJoint::SetLimits" ref="a32f9393d8a6b993fd523f0f643c28107" args="(float32 lower, float32 upper)" -->
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classb2_revolute_joint.html#a32f9393d8a6b993fd523f0f643c28107">SetLimits</a> (float32 lower, float32 upper)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the joint limits in radians. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9477b305db080e17dce8f2c6da0babb0"></a><!-- doxytag: member="b2RevoluteJoint::IsMotorEnabled" ref="a9477b305db080e17dce8f2c6da0babb0" args="() const " -->
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classb2_revolute_joint.html#a9477b305db080e17dce8f2c6da0babb0">IsMotorEnabled</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Is the joint motor enabled? <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a80ed5a07d9a0e07d010808a73ffae6ff"></a><!-- doxytag: member="b2RevoluteJoint::EnableMotor" ref="a80ed5a07d9a0e07d010808a73ffae6ff" args="(bool flag)" -->
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classb2_revolute_joint.html#a80ed5a07d9a0e07d010808a73ffae6ff">EnableMotor</a> (bool flag)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Enable/disable the joint motor. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a56f60bb1ea69048c8a455da49d62bf65"></a><!-- doxytag: member="b2RevoluteJoint::SetMotorSpeed" ref="a56f60bb1ea69048c8a455da49d62bf65" args="(float32 speed)" -->
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classb2_revolute_joint.html#a56f60bb1ea69048c8a455da49d62bf65">SetMotorSpeed</a> (float32 speed)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the motor speed in radians per second. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5ebdb2b410725d2c7999d8fce792e0da"></a><!-- doxytag: member="b2RevoluteJoint::GetMotorSpeed" ref="a5ebdb2b410725d2c7999d8fce792e0da" args="() const " -->
float32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classb2_revolute_joint.html#a5ebdb2b410725d2c7999d8fce792e0da">GetMotorSpeed</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the motor speed in radians per second. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a41779d7ec05be33e6368ef00123a3581"></a><!-- doxytag: member="b2RevoluteJoint::SetMaxMotorTorque" ref="a41779d7ec05be33e6368ef00123a3581" args="(float32 torque)" -->
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classb2_revolute_joint.html#a41779d7ec05be33e6368ef00123a3581">SetMaxMotorTorque</a> (float32 torque)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the maximum motor torque, usually in N-m. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1e990f811430b831967c856adfe452a0"></a><!-- doxytag: member="b2RevoluteJoint::GetMaxMotorTorque" ref="a1e990f811430b831967c856adfe452a0" args="() const " -->
float32&#160;</td><td class="memItemRight" valign="bottom"><b>GetMaxMotorTorque</b> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structb2_vec2.html">b2Vec2</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classb2_revolute_joint.html#a1e5d6eb28f3f35e825cfc42dbd23d66e">GetReactionForce</a> (float32 inv_dt) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">float32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classb2_revolute_joint.html#a85cdf204bf80dc0a4df6536e2e9a941e">GetReactionTorque</a> (float32 inv_dt) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">float32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classb2_revolute_joint.html#a64579cb1db5e9674ec17244133c72920">GetMotorTorque</a> (float32 inv_dt) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa9d88f5476c77a5c4a6ef5b2ad0d3e6f"></a><!-- doxytag: member="b2RevoluteJoint::Dump" ref="aa9d88f5476c77a5c4a6ef5b2ad0d3e6f" args="()" -->
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classb2_revolute_joint.html#aa9d88f5476c77a5c4a6ef5b2ad0d3e6f">Dump</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Dump to b2Log. <br/></td></tr>
<tr><td colspan="2"><h2><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2571c1438e909fb3518de6f88bb29e01"></a><!-- doxytag: member="b2RevoluteJoint::b2RevoluteJoint" ref="a2571c1438e909fb3518de6f88bb29e01" args="(const b2RevoluteJointDef *def)" -->
&#160;</td><td class="memItemRight" valign="bottom"><b>b2RevoluteJoint</b> (const <a class="el" href="structb2_revolute_joint_def.html">b2RevoluteJointDef</a> *def)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af8f5a4b3fac025f0a0e5474b81667dfb"></a><!-- doxytag: member="b2RevoluteJoint::InitVelocityConstraints" ref="af8f5a4b3fac025f0a0e5474b81667dfb" args="(const b2SolverData &amp;data)" -->
void&#160;</td><td class="memItemRight" valign="bottom"><b>InitVelocityConstraints</b> (const <a class="el" href="structb2_solver_data.html">b2SolverData</a> &amp;data)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9971ccf2570c9bf8c2e816aa5c0db05a"></a><!-- doxytag: member="b2RevoluteJoint::SolveVelocityConstraints" ref="a9971ccf2570c9bf8c2e816aa5c0db05a" args="(const b2SolverData &amp;data)" -->
void&#160;</td><td class="memItemRight" valign="bottom"><b>SolveVelocityConstraints</b> (const <a class="el" href="structb2_solver_data.html">b2SolverData</a> &amp;data)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad07e86dedb1f42c7d78129a65c0184fc"></a><!-- doxytag: member="b2RevoluteJoint::SolvePositionConstraints" ref="ad07e86dedb1f42c7d78129a65c0184fc" args="(const b2SolverData &amp;data)" -->
bool&#160;</td><td class="memItemRight" valign="bottom"><b>SolvePositionConstraints</b> (const <a class="el" href="structb2_solver_data.html">b2SolverData</a> &amp;data)</td></tr>
<tr><td colspan="2"><h2><a name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad4ce801fa7bdd408b41310793e6b37f8"></a><!-- doxytag: member="b2RevoluteJoint::m_localAnchorA" ref="ad4ce801fa7bdd408b41310793e6b37f8" args="" -->
<a class="el" href="structb2_vec2.html">b2Vec2</a>&#160;</td><td class="memItemRight" valign="bottom"><b>m_localAnchorA</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae206b6bcc7b6527d7d18f239d20a7ae9"></a><!-- doxytag: member="b2RevoluteJoint::m_localAnchorB" ref="ae206b6bcc7b6527d7d18f239d20a7ae9" args="" -->
<a class="el" href="structb2_vec2.html">b2Vec2</a>&#160;</td><td class="memItemRight" valign="bottom"><b>m_localAnchorB</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a00d576701b8e2ee886e9a59811b4df65"></a><!-- doxytag: member="b2RevoluteJoint::m_impulse" ref="a00d576701b8e2ee886e9a59811b4df65" args="" -->
<a class="el" href="structb2_vec3.html">b2Vec3</a>&#160;</td><td class="memItemRight" valign="bottom"><b>m_impulse</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9275ac791803aa38c225d06b05ecfc26"></a><!-- doxytag: member="b2RevoluteJoint::m_motorImpulse" ref="a9275ac791803aa38c225d06b05ecfc26" args="" -->
float32&#160;</td><td class="memItemRight" valign="bottom"><b>m_motorImpulse</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8fcdcbfc9fd51e8b5dc98ed8ea652e13"></a><!-- doxytag: member="b2RevoluteJoint::m_enableMotor" ref="a8fcdcbfc9fd51e8b5dc98ed8ea652e13" args="" -->
bool&#160;</td><td class="memItemRight" valign="bottom"><b>m_enableMotor</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a06ab30be0a455599bd3b5b6a11d6a43a"></a><!-- doxytag: member="b2RevoluteJoint::m_maxMotorTorque" ref="a06ab30be0a455599bd3b5b6a11d6a43a" args="" -->
float32&#160;</td><td class="memItemRight" valign="bottom"><b>m_maxMotorTorque</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7b6f51d7aa4b0132b12ec1091fdebfca"></a><!-- doxytag: member="b2RevoluteJoint::m_motorSpeed" ref="a7b6f51d7aa4b0132b12ec1091fdebfca" args="" -->
float32&#160;</td><td class="memItemRight" valign="bottom"><b>m_motorSpeed</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="adb179e134ac49c612201caa20340e090"></a><!-- doxytag: member="b2RevoluteJoint::m_enableLimit" ref="adb179e134ac49c612201caa20340e090" args="" -->
bool&#160;</td><td class="memItemRight" valign="bottom"><b>m_enableLimit</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7648b770a9165ee9cd97edcf2df6ed9e"></a><!-- doxytag: member="b2RevoluteJoint::m_referenceAngle" ref="a7648b770a9165ee9cd97edcf2df6ed9e" args="" -->
float32&#160;</td><td class="memItemRight" valign="bottom"><b>m_referenceAngle</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7c57732200aae93368481970731630b1"></a><!-- doxytag: member="b2RevoluteJoint::m_lowerAngle" ref="a7c57732200aae93368481970731630b1" args="" -->
float32&#160;</td><td class="memItemRight" valign="bottom"><b>m_lowerAngle</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="adf7a2ab69e1e7a72697a2c9d92877c52"></a><!-- doxytag: member="b2RevoluteJoint::m_upperAngle" ref="adf7a2ab69e1e7a72697a2c9d92877c52" args="" -->
float32&#160;</td><td class="memItemRight" valign="bottom"><b>m_upperAngle</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2bdab138718ea7ccab67a37d0499286d"></a><!-- doxytag: member="b2RevoluteJoint::m_indexA" ref="a2bdab138718ea7ccab67a37d0499286d" args="" -->
int32&#160;</td><td class="memItemRight" valign="bottom"><b>m_indexA</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acbf266a053a6f3071bfdd53e0e6b3df8"></a><!-- doxytag: member="b2RevoluteJoint::m_indexB" ref="acbf266a053a6f3071bfdd53e0e6b3df8" args="" -->
int32&#160;</td><td class="memItemRight" valign="bottom"><b>m_indexB</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6e33bbf932ce95efe072326199fa30f3"></a><!-- doxytag: member="b2RevoluteJoint::m_rA" ref="a6e33bbf932ce95efe072326199fa30f3" args="" -->
<a class="el" href="structb2_vec2.html">b2Vec2</a>&#160;</td><td class="memItemRight" valign="bottom"><b>m_rA</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afd72e453f92aa3214701a201c8f9dfe9"></a><!-- doxytag: member="b2RevoluteJoint::m_rB" ref="afd72e453f92aa3214701a201c8f9dfe9" args="" -->
<a class="el" href="structb2_vec2.html">b2Vec2</a>&#160;</td><td class="memItemRight" valign="bottom"><b>m_rB</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a70e2a385d097053453b4099094eb1154"></a><!-- doxytag: member="b2RevoluteJoint::m_localCenterA" ref="a70e2a385d097053453b4099094eb1154" args="" -->
<a class="el" href="structb2_vec2.html">b2Vec2</a>&#160;</td><td class="memItemRight" valign="bottom"><b>m_localCenterA</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a322ec1f7c33a358db73b53ec58e3356b"></a><!-- doxytag: member="b2RevoluteJoint::m_localCenterB" ref="a322ec1f7c33a358db73b53ec58e3356b" args="" -->
<a class="el" href="structb2_vec2.html">b2Vec2</a>&#160;</td><td class="memItemRight" valign="bottom"><b>m_localCenterB</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a28cd428903a7c62914d3473a40857fd2"></a><!-- doxytag: member="b2RevoluteJoint::m_invMassA" ref="a28cd428903a7c62914d3473a40857fd2" args="" -->
float32&#160;</td><td class="memItemRight" valign="bottom"><b>m_invMassA</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4fd153ad1fcb65084455f9884fa8b9d7"></a><!-- doxytag: member="b2RevoluteJoint::m_invMassB" ref="a4fd153ad1fcb65084455f9884fa8b9d7" args="" -->
float32&#160;</td><td class="memItemRight" valign="bottom"><b>m_invMassB</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a948a49144e282f7db22b1f20379c6099"></a><!-- doxytag: member="b2RevoluteJoint::m_invIA" ref="a948a49144e282f7db22b1f20379c6099" args="" -->
float32&#160;</td><td class="memItemRight" valign="bottom"><b>m_invIA</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7c224fc59adebaa00590217ab8a2c685"></a><!-- doxytag: member="b2RevoluteJoint::m_invIB" ref="a7c224fc59adebaa00590217ab8a2c685" args="" -->
float32&#160;</td><td class="memItemRight" valign="bottom"><b>m_invIB</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a284ae761074305d5032a2b666efb0650"></a><!-- doxytag: member="b2RevoluteJoint::m_mass" ref="a284ae761074305d5032a2b666efb0650" args="" -->
<a class="el" href="structb2_mat33.html">b2Mat33</a>&#160;</td><td class="memItemRight" valign="bottom"><b>m_mass</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aced7e455dd33ccb17a1d4ff9bb80c442"></a><!-- doxytag: member="b2RevoluteJoint::m_motorMass" ref="aced7e455dd33ccb17a1d4ff9bb80c442" args="" -->
float32&#160;</td><td class="memItemRight" valign="bottom"><b>m_motorMass</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abe77594f4773d21dabd8912d6630dc6a"></a><!-- doxytag: member="b2RevoluteJoint::m_limitState" ref="abe77594f4773d21dabd8912d6630dc6a" args="" -->
b2LimitState&#160;</td><td class="memItemRight" valign="bottom"><b>m_limitState</b></td></tr>
<tr><td colspan="2"><h2><a name="friends"></a>
Friends</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a54ade8ed3d794298108d7f4c4e4793fa"></a><!-- doxytag: member="b2RevoluteJoint::b2Joint" ref="a54ade8ed3d794298108d7f4c4e4793fa" args="" -->
class&#160;</td><td class="memItemRight" valign="bottom"><b>b2Joint</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a13c275221e30bb485e17e4e04553cb71"></a><!-- doxytag: member="b2RevoluteJoint::b2GearJoint" ref="a13c275221e30bb485e17e4e04553cb71" args="" -->
class&#160;</td><td class="memItemRight" valign="bottom"><b>b2GearJoint</b></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>A revolute joint constrains two bodies to share a common point while they are free to rotate about the point. The relative rotation about the shared point is the joint angle. You can limit the relative rotation with a joint limit that specifies a lower and upper angle. You can use a motor to drive the relative rotation about the shared point. A maximum motor torque is provided so that infinite forces are not generated. </p>
</div><hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="a64579cb1db5e9674ec17244133c72920"></a><!-- doxytag: member="b2RevoluteJoint::GetMotorTorque" ref="a64579cb1db5e9674ec17244133c72920" args="(float32 inv_dt) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float32 b2RevoluteJoint::GetMotorTorque </td>
          <td>(</td>
          <td class="paramtype">float32&#160;</td>
          <td class="paramname"><em>inv_dt</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Get the current motor torque given the inverse time step. Unit is N*m. </p>

</div>
</div>
<a class="anchor" id="a1e5d6eb28f3f35e825cfc42dbd23d66e"></a><!-- doxytag: member="b2RevoluteJoint::GetReactionForce" ref="a1e5d6eb28f3f35e825cfc42dbd23d66e" args="(float32 inv_dt) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structb2_vec2.html">b2Vec2</a> b2RevoluteJoint::GetReactionForce </td>
          <td>(</td>
          <td class="paramtype">float32&#160;</td>
          <td class="paramname"><em>inv_dt</em></td><td>)</td>
          <td> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Get the reaction force given the inverse time step. Unit is N. </p>

<p>Implements <a class="el" href="classb2_joint.html#a7e0eddefb9b69ad050b8ef6425838a74">b2Joint</a>.</p>

</div>
</div>
<a class="anchor" id="a85cdf204bf80dc0a4df6536e2e9a941e"></a><!-- doxytag: member="b2RevoluteJoint::GetReactionTorque" ref="a85cdf204bf80dc0a4df6536e2e9a941e" args="(float32 inv_dt) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float32 b2RevoluteJoint::GetReactionTorque </td>
          <td>(</td>
          <td class="paramtype">float32&#160;</td>
          <td class="paramname"><em>inv_dt</em></td><td>)</td>
          <td> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Get the reaction torque due to the joint limit given the inverse time step. Unit is N*m. </p>

<p>Implements <a class="el" href="classb2_joint.html#ae355e441c2aa842777dc04e24f15ced0">b2Joint</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li><a class="el" href="b2_revolute_joint_8h_source.html">b2RevoluteJoint.h</a></li>
<li>b2RevoluteJoint.cpp</li>
</ul>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Defines</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>



<hr class="footer"/><address class="footer"><small>
Generated on Sat Sep 17 2011 17:35:56 for Box2D by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.5.1
</small></address>

</body>
</html>
